to Model Output
Model-visible summary. Per historical parity gaps #17 + #14, the callback receives both the typed output AND ToolPredicateOptions; returns a structured ToolResultOutput (Text / Json / Error) instead of a bare String. The agent loop bridges each variant to the wire-format ContentPart.ToolResult.modelVisible (+ isError).